基础
[TOC]
可以在编译阶段约束操作的数据类型,并进行检查。(< 数据类型 >),只支持引用数据类型
扩展:java中的泛型是伪泛型,在存储到集合中时还是Object类型,在获取时强转为对应的泛型
泛型类
当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型 的类
public class ArrayList<E> {
}
泛型方法
方法中形参类型不确定时,可以使用类名后面定义的泛型<E>
,只能本方法使用
public class MyArrayList {
public <E> boolean add(E...e) {
obj[size] = e;
size++;
return true;
}
}
E...e这是可变参数,在传入参数数量未知时使用
泛型接口
public interface Lis
泛型的继承和通配符
泛型具备继承性,但是数据具备继承性
泛型的通配符:
- ?表示不确定类型,可以进行类型的限定
- ? extends E:表示可以传递E或者E所有的子类类型
- ?super E:表示可以传递E或者E所有的父类类型
Ye是个类
Fu,Zi继承Ye
public static void method(ArrayList<? extends Ye> list){}
如果只是ArrayList<Ye>,则当传入Fu, Zi类型